package fr.upstlse.glre.client.espacededie.commun.utilisateur;

import com.extjs.gxt.ui.client.event.ComponentEvent;
import com.extjs.gxt.ui.client.event.SelectionListener;
import com.extjs.gxt.ui.client.widget.Info;

import fr.upstlse.glre.client.administration.communiquer.AdminFilterBar;
import fr.upstlse.glre.client.constante.fields.CriteriaConstante;
import fr.upstlse.glre.client.widgets.modelData.CriteriaModelData;

public abstract class AbstractFilterAction extends
		SelectionListener<ComponentEvent> {

	@Override
	public void componentSelected(ComponentEvent ce) {
		CriteriaModelData lCriteriaModelData = AdminFilterBar.getInstance()
				.getCriteriaField().getValue();
		if (lCriteriaModelData != null) {
			String lCritere = lCriteriaModelData
					.get(CriteriaConstante.MODELDATA_CRITERE.getValue());
			String lValeur = AdminFilterBar.getInstance().getCriteriaValue()
					.getValue();

			actionFactory(lCritere, lValeur);
		}
		else {
			Info.display("Information", "Le critère sélectionné n'est pas valide OU Le critère n'est pas un critère de la liste", "");
		}
	}

	public abstract void actionFactory(String pCritere, String pValeur);

}
